
int judg(int *p)
{
    //判断横行和竖行
    for(int i=0; i<225; ++i)
    {
        //黑棋
        if((i%15)<=10 && p[i]==1 && p[i+1]==1 && p[i+2]==1 && p[i+3]==1 && p[i+4]==1)
        {
            return 1;
        }
        if((i%15)<=10 && p[i]==1 && p[i+15]==1 && p[i+30]==1 && p[i+45]==1 && p[i+60]==1)
        {
            return 1;
        }
        //白棋
        if((i%15)<=10 && p[i]==2 && p[i+1]==2 && p[i+2]==2 && p[i+3]==2 && p[i+4]==2)
        {
            return 2;
        }
        if((i%15)<=10 && p[i]==2 && p[i+15]==2 && p[i+30]==2 && p[i+45]==2 && p[i+60]==2)
        {
            return 2;
        }       
    }
 
    //判断左上到右下
    for(int i=0; i<225; ++i)
    {
        //黑棋
        if((i%15)<=10 && (i/15)<=11 && p[i]==1 && p[i+16]==1 && p[i+32]==1 && p[i+48]==1 && p[i+64]==1)
        {
            return 1;
        }
        //白棋
        if((i%15)<=10 && (i/15)<=11 && p[i]==2 && p[i+16]==2 && p[i+32]==2 && p[i+48]==2 && p[i+64]==2)
        {
            return 2;
        }
    }

    //判断右上到左下
    for(int i=0; i<225; ++i)
    {
        //黑棋
        if((i%15)>=5 && (i/15)<=11 && p[i]==1 && p[i+14]==1 && p[i+28]==1 && p[i+42]==1 && p[i+56]==1)
        {
            return 1;
        }
        //白棋
        if((i%15)>=5 && (i/15)<=11 && p[i]==2 && p[i+14]==2 && p[i+28]==2 && p[i+42]==2 && p[i+56]==2)
        {
            return 2;
        }       
    }
   return 0; 
}
